-- lua/core/autocmds.lua - 自动命令
local augroup = vim.api.nvim_create_augroup
local autocmd = vim.api.nvim_create_autocmd

-- 文件类型检测
-- 自动识别 .jsonc 文件并设置正确的文件类型，以便 Neovim 提供语法高亮和其他相关功能
augroup("FileTypeDetection", { clear = true })
autocmd({ "BufRead", "BufNewFile" }, {  -- 修改此行：将事件改为数组格式
  pattern = "*.jsonc",
  command = "set filetype=jsonc",
  group = "FileTypeDetection",
})

-- 自动格式化
-- 在保存 Lua、Go 和 Python 文件时自动格式化代码，确保代码风格一致
augroup("FormatOnSave", { clear = true })
autocmd("BufWritePre", {
  pattern = { "*.lua", "*.go", "*.python" },
  command = "lua vim.lsp.buf.format()",
  group = "FormatOnSave",
})

-- 自动重新加载配置文件
-- 在修改 Neovim 的配置文件（.lua 文件）后保存时，自动重新加载配置，无需手动重启 Neovim
augroup("ReloadConfig", { clear = true })
autocmd("BufWritePost", {
  pattern = vim.fn.stdpath("config") .. "/**/*.lua",
  command = "source <afile> | echo 'Reloaded: <afile>'",
  group = "ReloadConfig",
})
